#include void setup() { Serial.begin(9600); // start serial for output Wire.onRequest(requestEvent); // register event } void loop() { Wire.end(); Wire.begin(pickARandomAddress()); // join i2c bus with address #8 delay(2000); } // function that executes whenever data is requested by master // this function is registered as an event, see setup() void requestEvent() { Serial.println("WARNING! We have been detected!!"); Wire.write("hello "); } int pickARandomAddress() { int busMinAddress = 1; int busMaxAddress = 50; return random(busMinAddress, busMaxAddress); }